package com.skyd.core.game.crosswisewar;

import java.util.ArrayList;

import com.skyd.core.vector.Vector2DF;

/**
 * 场景接口
 * @author SkyD
 *
 */
public interface IScene {
	/**
	 * 获取场景左端进入点
	 * @return
	 */
	float getLeftEnterPoint();
	/**
	 * 获取场景右端进入点
	 * @return
	 */
	float getRightEnterPoint();
	/**
	 * 获取场景地平线位置点
	 * @return
	 */
	float getHorizonPoint();
	/**
	 * 获取场景的实际总宽度
	 * @return
	 */
	int getTotalWidth();
	/**
	 * 获取子对象列表
	 */
	ArrayList<IObj> getChildrenList();
	
	/**
	 * 获取摄像机偏移量
	 */
	float getCameraOffset();
	
	/**
	 * 移动镜头
	 * @param v 相对位置（以实际屏幕像素为基准）
	 */
	void moveCamera(Vector2DF v);
	
	/**
	 * 获取屏幕上x坐标所对应的场景内坐标位置
	 * @param xInScreen 屏幕上的x坐标
	 * @return 对应的场景内坐标
	 */
	float getPositionInScene(float xInScreen);
	
	/**
	 * 获取场景中的实体对象（忽略无形对象，如魔法和增益效果）
	 * @param nation 目标阵营，如果为null则视为允许所有阵营
	 * @param type 获取类型目标
	 * @param leftPos 范围左端坐标
	 * @param rightPos 范围右端坐标
	 * @return 获取到的对象
	 */
	IEntity[] findEntities(INation nation,EntityType type,float leftPos,float rightPos);
}
